 1.Hadoop 3.x 新特性概述
   
   Hadoop3.x中增强了很多特性，在Hadoop3.x中，不再允许使用jdk1.7，要求jdk1.8以上版本。这是因
为Hadoop 2.0 是基于JDK 1.7 开发的，而JDK 1.7 在2015年4月已停止更新，这直接迫使Hadoop社区基
于JDK 1.8 重新发布一个新的Hadoop版本，而这正是Hadoop3.x。Hadoop3.x以后将会调整方案架构，
]将Mapreduce 基于内存+io+磁盘，共同处理数据。
  Hadoop 3.x中引入了一些重要的功能和优化，包括HDFS 可擦除编码、多Namenode支持、MR Native
Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。
 
 Hadoop3.x官方文档地址如下:
 http://hadoop.apache.org/docs/r3.0.1/
 
 2.Hadoop3.x新特性之Common改进
   
   Hadoop Common改进：
   1). 精简Hadoop内核，包括剔除过期的API和实现，将默认组件实现替换成最高效的实现（比如将
FileOutputCommitter缺省实现换为v2版本，废除hftp转由webhdfs替代，移除Hadoop子实现序
列化库org.apache.hadoop.Records
   2). lasspath isolation以防止不同版本jar包冲突，比如google Guava在混合使用Hadoop、HBase和
Spark时，很容易产生冲突。（https://issues.apache.org/jira/browse/HADOOP-11656）
   3). Shell脚本重构。 Hadoop 3.0 对Hadoop的管理脚本进行了重构，修复了大量bug，增加了新特
性，支持动态命令等。使用方式上则和之前版本的一致。(https://issues.apache.org/jira/brows
e/HADOOP-9902)Hadoop3.x新特性之HDFS改进
  Hadoop3.x中最大改变的是HDFS，HDFS通过最近black块计算，根据最近计算原则，本地black块，加
入到内存，先计算，通过IO，共享内存计算区域，最后快速形成计算结果。
   1). HDFS支持数据的擦除编码，这使得HDFS在不降低可靠性的前提下，节省一半存储空间。(http
s://issues.apache.org/jira/browse/HDFS-7285)
   2). 多NameNode支持，即支持一个集群中，一个active、多个standby namenode部署方式。注：
多ResourceManager特性在hadoop 2.0 中已经支持。(https://issues.apache.org/jira/browse/
HDFS-6440)
   关于这两个特性的官方文档地址：
   http://hadoop.apache.org/docs/r3.0.1/hadoop-project-dist/hadoop-
hdfs/HDFSErasureCoding.html
   http://hadoop.apache.org/docs/r3.0.1/hadoop-project-dist/hadoop-
hdfs/HDFSHighAvailabilityWithQJM.html
 
 3.Hadoop3.x新特性之YARN改进
   
   1). 基于cgroup的内存隔离和IO Disk隔离（https://issues.apache.org/jira/browse/YARN-2619）
   2). 用curator实现RM leader选举（https://issues.apache.org/jira/browse/YARN-4438）
   3). containerresizing（https://issues.apache.org/jira/browse/YARN-1197）
   4). Timelineserver next generation （https://issues.apache.org/jira/browse/YARN-2928）
   官方文档地址：
   http://hadoop.apache.org/docs/r3.0.1/hadoop-yarn/hadoop-yarn-
site/TimelineServiceV2.html
 
 4.Hadoop3.x新特性之MapReduce改进
   
   1). Tasknative优化。为MapReduce增加了C/C++的map output collector实现（包括Spill，Sort和
IFile等），通过作业级别参数调整就可切换到该实现上。对于shuffle密集型应用，其性能可提高
约30%。（https://issues.apache.org/jira/browse/MAPREDUCE-2841）
   2). MapReduce内存参数自动推断。在Hadoop 2.0 中，为MapReduce作业设置内存参数非常繁琐，
涉及到两个参数：mapreduce.{map,reduce}.memory.mb和mapreduce.
{map,reduce}.java.opts，一旦设置不合理，则会使得内存资源浪费严重，比如将前者设置为
4096 MB，但后者却是“-Xmx2g”，则剩余2g实际上无法让java heap使用到。（https://issues.apa
che.org/jira/browse/MAPREDUCE-5785）
Hadoop3.x新特性之其他
   3). 添加新的 hadoop-client-api 和 hadoop-client-runtime 组件到一个单独的jar包里，以此解决依赖
不兼容的问题。 （https://issues.apache.org/jira/browse/HADOOP-11804）
   4). 支持微软的Azure分布式文件系统和阿里的aliyun分布式文件系统